// Likelihood.h: interface for the Likelihood class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_LIKELIHOOD_H__00BEC2D2_4ADB_11D1_93B6_006097737B41__INCLUDED_)
#define AFX_LIKELIHOOD_H__00BEC2D2_4ADB_11D1_93B6_006097737B41__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000

#include "DataHolder.h"
#include <cmath>

class Likelihood  
{
public:
	Likelihood(DataHolder *Measurement);
	virtual ~Likelihood();

	double Build(double *Intensity);	
	void   BuildDerivatives(double *IDerivative);

	// This function is only called from Function::SetTempForDerivLikelihood(double t) 
	// not good programming
//	void SetTemp(double t) {Temp = t;} 
private:
	int     NInput;

	double  ChiSquared;

	 double     *Hd, *Hf, dHd, fHd, fHf;
	 DataHolder *Data;

//	 double Temp; // to devide potential by temperature
};

#endif // !defined(AFX_LIKELIHOOD_H__00BEC2D2_4ADB_11D1_93B6_006097737B41__INCLUDED_)
